Office Hours Topics
Cloud Fundamentals & AWS
- Subnets (overview and how they work)
- Route tables
- Target groups and port connections (why they’re needed for load balancers)
- Tags in AWS (what they are and when to use them)
- VPS vs EC2
- Hosting: local vs cloud (considerations for choosing)
- Why big companies use AWS/cloud instead of private clouds
- Why different AWS Linux flavours have different prices (Amazon Linux, Ubuntu, RHEL, etc.)
- What is Linux and how it differs from Windows/macOS
AWS Services & Serverless
- AWS Lambda and serverless computing (use cases, FaaS examples)
- Docker, Kubernetes, containerisation, and VPCs
- Data pipelines (what they are and examples)
- Consistency across RDS instances
- Working with RDS-hosted databases (storing scripts locally vs on RDS)
AWS Security & Monitoring
- Common AWS security measures and attack prevention
- Security measures for stored data in AWS (shared responsibility vs extra measures)
- CloudTrail overview (what it is and what it shows)
- Monitoring and logging in cloud environments
- Redundancy in cloud systems (geographic, zone, load balancer redundancy)
- How server traffic is monitored (IPs, requests, etc.)
- ABAC vs RBAC (access control models)
- How to troubleshoot common AWS issues
Load Balancing
- Load balancing algorithms (round robin, sticky round robin, IP/URL hash)
- How are load balancing algorithms configured?
- Is there an industry standard load balancing algorithm? How to choose between them?
- Designing a load balancer using HTTPS instead of HTTP
Security & Cryptography
- How SSH works
- Public key cryptography
- Using .env files securely (including uploads to servers)
- How to patch variables from .env in test files
Git & Collaboration
- Git branching workflows (git flow, trunk, GitHub flow)
- How to use git branch (create, work on, merge, delete)
- Git branching, rebasing, merging (best practices)
- GitLab vs GitHub (key differences)
- GitHub Actions workflows (runners, jobs, steps, triggers, events)
- How to add workflow results as guards (e.g. tests must pass before merging)
- Is there a method for testing GitHub Actions locally?
Python & Testing
- Difference between @patch and with patch
- What a type hint is in Python
- Why the complexity of
indiffers for sets vs lists in Python
Tools & Scripting
- Basic shell scripts (avoiding repetitive commands, connection strings)
- How to stop/restart background processes (nohup)
- Difference between scp and sftp
- How to get around JavaScript rendering when web scraping